package com.ruoyi.wms.service;

import java.util.List;
import com.ruoyi.wms.domain.WmsReceiptOrder;

/**
 * 收货订单Service接口
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public interface IWmsReceiptOrderService 
{
    /**
     * 查询收货订单
     * 
     * @param orderId 收货订单主键
     * @return 收货订单
     */
    public WmsReceiptOrder selectWmsReceiptOrderById(Long orderId);

    /**
     * 根据订单编号查询收货订单
     * 
     * @param orderNo 订单编号
     * @return 收货订单
     */
    public WmsReceiptOrder selectWmsReceiptOrderByOrderNo(String orderNo);

    /**
     * 查询收货订单列表
     * 
     * @param wmsReceiptOrder 收货订单
     * @return 收货订单集合
     */
    public List<WmsReceiptOrder> selectWmsReceiptOrderList(WmsReceiptOrder wmsReceiptOrder);

    /**
     * 新增收货订单
     * 
     * @param wmsReceiptOrder 收货订单
     * @return 结果
     */
    public int insertWmsReceiptOrder(WmsReceiptOrder wmsReceiptOrder);

    /**
     * 修改收货订单
     * 
     * @param wmsReceiptOrder 收货订单
     * @return 结果
     */
    public int updateWmsReceiptOrder(WmsReceiptOrder wmsReceiptOrder);

    /**
     * 批量删除收货订单
     * 
     * @param orderIds 需要删除的收货订单主键集合
     * @return 结果
     */
    public int deleteWmsReceiptOrderByIds(Long[] orderIds);

    /**
     * 删除收货订单信息
     * 
     * @param orderId 收货订单主键
     * @return 结果
     */
    public int deleteWmsReceiptOrderById(Long orderId);

    /**
     * 创建收货订单
     * 
     * @param wmsReceiptOrder 收货订单
     * @return 结果
     */
    public int createReceiptOrder(WmsReceiptOrder wmsReceiptOrder);

    /**
     * 收货确认
     * 
     * @param order 收货订单对象（包含实收数量等信息）
     * @return 结果
     */
    public int confirmReceipt(WmsReceiptOrder order);

    /**
     * 取消收货订单
     * 
     * @param orderNo 订单编号
     * @return 结果
     */
    public int cancelReceiptOrder(String orderNo);

    /**
     * 完成收货订单
     * 
     * @param orderNo 订单编号
     * @return 结果
     */
    public int completeReceiptOrder(String orderNo);
}